package login

import (
	"github.com/gin-gonic/gin"
	"handitem/xxb-gin-web/commons/response"
	"handitem/xxb-gin-web/model/jwt"
)

// LogOutApi 登出业务
type LogOutApi struct{}

func (api *LogOutApi) ToLogOut(c *gin.Context) {
	// 获取token
	token := c.GetHeader("Authorization")
	if token == "" {
		response.Fail(401, "请求未携带token，无权限访问", c)
		return
	}
	// 如果生成新token了，旧的token怎么办？ jwt没有提供一个机制让旧token失效。
	err := jwtService.JsonInBlacklist(jwt.JwtBlacklist{Jwt: token})
	if err != nil {
		response.Fail(401, "token作废失败", c)
		return
	}
	response.Ok("token作废成功！", c)
}
